package com.example.boot.annotation;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "desensitize")
public class DesensitizeProperties {

    /**
     * 脱敏规则集合
     * Key: 规则名称（如 phone、email）
     * Value: 正则表达式和替换模板
     */
    private Map<String, Rule> rules = new HashMap<>();

    /**
     * 单条脱敏规则定义
     */
    @Getter
    @Setter
    public static class Rule {
        private String pattern;  // 正则匹配规则（如 "(\\d{3})\\d{4}(\\d{4})"）
        private String template; // 替换模板（如 "$1****$2"）
    }
}